package com.hdx.server.service;


import com.hdx.common.result.PageResult;
import com.hdx.model.dto.*;
import com.hdx.model.vo.OrderPaymentVO;
import com.hdx.model.vo.OrderStatisticsVO;
import com.hdx.model.vo.OrderSubmitVO;
import com.hdx.model.vo.OrderVO;

public interface OrderService {
    PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);

    OrderStatisticsVO getStatistics();

    OrderVO getOrderVOById(Long id);


    void confirm(OrdersConfirmDTO ordersConfirmDTO);

    void reject(OrdersRejectionDTO ordersRejectionDTO) throws Exception;

    void cancel(OrdersCancelDTO ordersCancelDTO) throws Exception;

    void delivery(Long id);

    void complete(Long id);


    OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO);

    OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;

    PageResult pageQuery4User(int page, int pageSize, Integer status);

    OrderVO details(Long id);

    void userCancelById(Long id) throws Exception;

    void repetition(Long id);

    void reminder(Long id);

    void paySuccess(String outTradeNo);
}
